A database server is a software product that provides database services to software applications (sometimes referred to as “database applications”) in response to requests received therefrom. Such database services may include but are not limited to storing, retrieving, analyzing or manipulating database data. Depending upon the implementation, the database applications may be running on the same machine on which the database server is running or may be running on other machines that are connected to the machine on which the database server is running via one or more networks. To send requests to the database server, a database application opens a connection to the database server and establishes therewith what is referred to as a session. A session represents an ongoing interactive information exchange between the database application and the database server. Typically, a session is set up or established at a certain point in time and then torn down at a later point in time. An established session often involves the sending of more than one message from the database application to the database server and from the database server to the database application.
A database application that has connected to a remote database server in the manner set forth above may experience errors due to failures or other problems occurring at the database server or in the environment of the database server (sometimes referred to as the “back-end”). Such errors may cause the database application and even the database server to simply stop working. To address this issue, logic may be included in the database application that is configured to receive error messages from the database server and to perform operations in response to receiving those error messages. However, including such logic in the database application makes it more difficult to develop such application and causes such application to be more complex. Furthermore, it is possible that the database application cannot be programmed to anticipate all possible error codes or messages generated by the database server.
Furthermore, when a database application experiences errors due to a back-end problem or due to a problem with the application itself, information technology (IT) professionals, database administrators (DBAs) and developers are mobilized to understand the nature of the problem. However, troubleshooting production environments can be challenging, due to time constraints, lack of tools and other limitations. For example, troubleshooting a large number of instances of a database application can be challenging in a large-scale deployment when local interaction with each database application is required to perform such troubleshooting.